CRUD শব্দটি Create, Read, Update, এবং Delete এর সংক্ষিপ্ত রূপ, যা ডেটাবেজে ডেটার মৌলিক অপারেশনগুলিকে নির্দেশ করে। H2 Database এ এই অপারেশনগুলি খুব সহজে SQL কুয়েরির মাধ্যমে পরিচালনা করা যায়। নিচে প্রতিটি অপারেশন সম্পর্কে বিস্তারিত আলোচনা করা হলো।
H2 ডেটাবেজে নতুন ডেটা যোগ করতে Create অপারেশন ব্যবহার করা হয়। এটি টেবিল তৈরি, ডেটা ইনসার্ট করা এবং নতুন রেকর্ড তৈরি করতে ব্যবহৃত হয়।
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(50),
salary DECIMAL(10, 2)
);
এটি একটি employees
নামক টেবিল তৈরি করবে, যেখানে id
, name
, position
এবং salary
নামের কলাম থাকবে।
টেবিলে ডেটা ইনসার্ট করতে INSERT INTO কুয়েরি ব্যবহার করা হয়:
INSERT INTO employees (id, name, position, salary)
VALUES (1, 'John Doe', 'Manager', 60000.00);
এটি employees
টেবিলে একটি নতুন রেকর্ড ইনসার্ট করবে যেখানে id
1, name
'John Doe', position
'Manager', এবং salary
60000.00।
H2 ডেটাবেজে ডেটা পড়তে SELECT কুয়েরি ব্যবহার করা হয়। এটি একটি বা একাধিক টেবিল থেকে ডেটা রিট্রিভ করার জন্য ব্যবহৃত হয়।
SELECT * FROM employees;
এটি employees
টেবিলের সব রেকর্ডগুলো পড়ে এবং ফলাফল হিসেবে প্রদর্শন করবে।
SELECT name, position FROM employees;
এটি employees
টেবিলের name
এবং position
কলামের ডেটা পড়ে।
SELECT * FROM employees WHERE salary > 50000;
এটি salary
কলামের মান 50000 এর বেশি এমন সমস্ত রেকর্ড পড়বে।
H2 ডেটাবেজে ডেটা আপডেট করতে UPDATE কুয়েরি ব্যবহার করা হয়। এটি নির্দিষ্ট রেকর্ডগুলির মান পরিবর্তন করতে ব্যবহৃত হয়।
UPDATE employees
SET salary = 65000
WHERE id = 1;
এটি id
1 এর জন্য salary
মান 65000 এ পরিবর্তন করবে।
UPDATE employees
SET salary = salary + 5000
WHERE position = 'Manager';
এটি position
কলামের মান 'Manager' হওয়া সমস্ত রেকর্ডের salary
মানে 5000 যোগ করবে।
H2 ডেটাবেজে ডেটা ডিলিট করতে DELETE কুয়েরি ব্যবহার করা হয়। এটি ডেটাবেজ থেকে এক বা একাধিক রেকর্ড মুছে ফেলতে ব্যবহৃত হয়।
DELETE FROM employees WHERE id = 1;
এটি id
1 এর রেকর্ডটি employees
টেবিল থেকে মুছে ফেলবে।
DELETE FROM employees;
এটি employees
টেবিলের সব রেকর্ড মুছে ফেলবে, তবে টেবিলটি থাকবে।
ধরা যাক, আমাদের একটি employees
টেবিল আছে এবং আমরা এতে কিছু CRUD অপারেশন করতে চাই। নিচে পুরো একটি উদাহরণ দেয়া হলো:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(50),
salary DECIMAL(10, 2)
);
INSERT INTO employees (id, name, position, salary)
VALUES (1, 'Alice', 'Engineer', 50000.00);
INSERT INTO employees (id, name, position, salary)
VALUES (2, 'Bob', 'Manager', 70000.00);
INSERT INTO employees (id, name, position, salary)
VALUES (3, 'Charlie', 'Analyst', 45000.00);
SELECT * FROM employees;
UPDATE employees
SET salary = 75000
WHERE id = 2;
DELETE FROM employees WHERE id = 3;
H2 ডেটাবেজে CRUD অপারেশনগুলো SQL কুয়েরির মাধ্যমে অত্যন্ত সহজ এবং দ্রুত সম্পন্ন করা যায়।
H2 ডেটাবেজে টেবিল এবং ডকুমেন্ট তৈরি করা হল ডেটাবেজের মূল অংশ। H2 ডেটাবেজে টেবিল তৈরি করা একটি SQL অপারেশন, যা ডেটাবেজের মধ্যে ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। একইভাবে, ডকুমেন্ট তৈরি করা ডকুমেন্ট-ওরিয়েন্টেড ডেটাবেজ ফিচার হিসাবে ব্যবহৃত হতে পারে (যেমন H2-তে JSON ডকুমেন্ট)।
এখানে আমরা H2 ডেটাবেজে টেবিল এবং ডকুমেন্ট তৈরি করার পদ্ধতি সম্পর্কে বিস্তারিত আলোচনা করব।
H2 ডেটাবেজে একটি টেবিল তৈরি করার জন্য CREATE TABLE
SQL কমান্ড ব্যবহার করা হয়। এই কমান্ডটি ডেটাবেজে একটি নতুন টেবিল তৈরি করতে ব্যবহৃত হয় এবং টেবিলের মধ্যে কোন কোন কলাম থাকবে, তাদের ডেটা টাইপ কী হবে তা নির্ধারণ করতে হবে।
CREATE TABLE table_name (
column1_name column1_datatype,
column2_name column2_datatype,
...
);
ধরা যাক, আমরা একটি students নামক টেবিল তৈরি করতে চাই, যার মধ্যে id
, name
, এবং age
নামে তিনটি কলাম থাকবে।
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
এই SQL কোডটি একটি students
নামক টেবিল তৈরি করবে, যেখানে:
id
: একটি পূর্ণসংখ্যা (integer), যা টেবিলের প্রধান কী হিসেবে ব্যবহৃত হবে।name
: একটি স্ট্রিং (VARCHAR), যেখানে ছাত্রের নাম রাখা হবে।age
: একটি পূর্ণসংখ্যা (integer), যা ছাত্রের বয়স সংরক্ষণ করবে।H2 ডেটাবেজ ডকুমেন্ট-ওরিয়েন্টেড ডেটাবেজের ফিচার সমর্থন করে, যার মাধ্যমে JSON ডকুমেন্ট তৈরি করা সম্ভব। এটি সাধারণত Document Types হিসেবে কাজ করে, যেখানে বিভিন্ন ধরনের ডেটা ফরম্যাট (যেমন JSON) ব্যবহার করা হয়।
CREATE TABLE table_name (
column1_name JSON,
column2_name column2_datatype,
...
);
ধরা যাক, আমরা একটি products নামক টেবিল তৈরি করতে চাই, যেখানে একটি কলামে JSON ডকুমেন্ট থাকবে।
CREATE TABLE products (
id INT PRIMARY KEY,
details JSON
);
এই SQL কোডটি একটি products
টেবিল তৈরি করবে, যেখানে:
id
: একটি পূর্ণসংখ্যা (integer), যা প্রতিটি পণ্যের জন্য ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করবে।details
: একটি JSON ডেটা টাইপ, যেখানে পণ্যের বিস্তারিত তথ্য যেমন নাম, মূল্য, বিবরণ ইত্যাদি JSON ফরম্যাটে সংরক্ষণ করা যাবে।একটি JSON ডকুমেন্ট ইনসার্ট করার জন্য, আপনি নিম্নলিখিত SQL কোড ব্যবহার করতে পারেন:
INSERT INTO products (id, details)
VALUES (1, '{"name": "Laptop", "price": 50000, "brand": "Dell"}');
এই SQL কোডটি products
টেবিলে একটি পণ্য ইনসার্ট করবে, যেখানে details
কলামে JSON ডেটা থাকবে।
অটো ইনক্রিমেন্ট (Auto Increment): H2 ডেটাবেজে, একটি কলামকে অটো ইনক্রিমেন্ট হিসেবে নির্ধারণ করা যায়, যাতে প্রতিটি নতুন রেকর্ডে একটি নতুন মান স্বয়ংক্রিয়ভাবে যুক্ত হয়। উদাহরণস্বরূপ:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT
);
INT
, VARCHAR
, DATE
, BOOLEAN
, JSON
ইত্যাদি। ডেটা টাইপ সঠিকভাবে ব্যবহার করা গুরুত্বপূর্ণ, কারণ এটি ডেটা সঠিকভাবে সংরক্ষণ এবং পুনরুদ্ধার করতে সহায়ক হবে।H2 ডেটাবেজে টেবিল তৈরি এবং ডকুমেন্ট তৈরি করা অত্যন্ত সহজ এবং সরল। CREATE TABLE
কমান্ড ব্যবহার করে আপনি টেবিল তৈরি করতে পারেন এবং JSON ডেটা টাইপ ব্যবহার করে ডকুমেন্ট ম্যানেজ করতে পারেন। H2 ডেটাবেজে টেবিল এবং ডকুমেন্ট তৈরি করা প্রক্রিয়া খুবই কার্যকর এবং দ্রুত ডেভেলপমেন্টের জন্য উপযুক্ত।
H2 ডেটাবেজে ডেটা পড়া বা SELECT কুয়েরি হল SQL ভাষায় সবচেয়ে মৌলিক এবং গুরুত্বপূর্ণ অপারেশনগুলোর একটি, যা ডেটাবেজ থেকে নির্দিষ্ট ডেটা নির্বাচন করার জন্য ব্যবহৃত হয়। এটি মূলত ডেটাবেজ টেবিল থেকে তথ্য সংগ্রহ করতে ব্যবহৃত হয়, এবং বিভিন্ন শর্ত এবং ফিল্টার ব্যবহার করে নির্দিষ্ট ডেটা নির্বাচন করা সম্ভব।
SELECT
কুয়েরি সাধারণত নিম্নলিখিত কাঠামো অনুসরণ করে:
SELECT <কলাম_নাম>
FROM <টেবিল_নাম>
WHERE <শর্ত>;
ধরা যাক আমাদের একটি students
নামক টেবিল রয়েছে এবং আমরা এই টেবিলের সমস্ত ডেটা দেখতে চাই:
SELECT * FROM students;
এই কুয়েরি সকল কলাম এবং সব রেকর্ড (লাইন) ফিরিয়ে দেবে যা students
টেবিলের মধ্যে আছে। *
ব্যবহার করা হয় সমস্ত কলাম নির্বাচন করতে।
আপনি যদি শুধু কিছু নির্দিষ্ট কলাম পড়তে চান, তাহলে সেই কলামগুলো স্পেসিফাই করতে হবে:
SELECT name, age FROM students;
এই কুয়েরি শুধু students
টেবিলের name
এবং age
কলাম থেকে ডেটা ফিরিয়ে দেবে।
WHERE
ক্লজ ব্যবহার করে আপনি ডেটা ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যদি আমরা শুধু এমন ছাত্রদের দেখতে চাই যারা ২০ বছরের বেশি, তাহলে কুয়েরি হবে:
SELECT * FROM students WHERE age > 20;
এই কুয়েরি কেবলমাত্র সেই ছাত্রদের তথ্য দেখাবে যাদের age
২০ এর বেশি।
আপনি যদি একাধিক শর্ত দিতে চান, তাহলে AND
বা OR
ব্যবহার করতে পারেন:
SELECT name, age FROM students WHERE age > 20 AND gender = 'Female';
এই কুয়েরি কেবলমাত্র সেই ছাত্রীর নাম এবং বয়স ফিরিয়ে দেবে যাদের বয়স ২০ এর বেশি এবং লিঙ্গ 'Female'।
ORDER BY
কুয়েরি ডেটা সাজানোর জন্য ব্যবহৃত হয়। আপনি যদি age
কলাম অনুসারে ডেটা সাজাতে চান তাহলে কুয়েরি হবে:
SELECT * FROM students ORDER BY age;
এটি ছাত্রদের বয়স অনুসারে আস্থরিকভাবে (ascending) সাজাবে। আপনি যদি বয়সের উপর উল্টো (descending) সাজাতে চান, তাহলে DESC
ব্যবহার করবেন:
SELECT * FROM students ORDER BY age DESC;
LIMIT
কুয়েরি ডেটার সংখ্যা সীমিত করার জন্য ব্যবহৃত হয়। যদি আপনি শুধুমাত্র প্রথম ৫টি রেকর্ড দেখতে চান, তাহলে:
SELECT * FROM students LIMIT 5;
এটি শুধুমাত্র প্রথম ৫টি রেকর্ড দেখাবে।
DISTINCT
ব্যবহার করে আপনি পুনরাবৃত্তি হওয়া মান বাদ দিয়ে ইউনিক মান নির্বাচন করতে পারেন। উদাহরণস্বরূপ:
SELECT DISTINCT gender FROM students;
এই কুয়েরি শুধু gender
কলামের ইউনিক মানগুলি ফিরিয়ে দেবে (যেমন 'Male', 'Female')।
BETWEEN
ব্যবহার করে একটি নির্দিষ্ট রেঞ্জের মধ্যে ডেটা নির্বাচন করা হয়। উদাহরণস্বরূপ, যদি আমরা বয়সের মধ্যে ১৮ থেকে ২৫ পর্যন্ত ছাত্রদের দেখতে চাই:
SELECT * FROM students WHERE age BETWEEN 18 AND 25;
এই কুয়েরি বয়স ১৮ থেকে ২৫ পর্যন্ত ছাত্রদের তথ্য দেখাবে।
IN
ব্যবহার করে আপনি একাধিক মানের মধ্যে ডেটা নির্বাচন করতে পারেন। উদাহরণস্বরূপ, যদি আমরা এমন ছাত্রদের দেখতে চাই যাদের বয়স ২০, ২২ বা ২৪:
SELECT * FROM students WHERE age IN (20, 22, 24);
এটি কেবলমাত্র সেই ছাত্রদের তথ্য ফিরিয়ে দেবে যাদের বয়স ২০, ২২ অথবা ২৪।
SELECT
কুয়েরি একটি অত্যন্ত শক্তিশালী এবং গুরুত্বপূর্ণ SQL অপারেশন, যা ডেটাবেজ থেকে ডেটা সংগ্রহ করতে ব্যবহৃত হয়। H2 ডেটাবেজে SELECT
কুয়েরি ব্যবহার করে আপনি বিভিন্ন ধরনের ডেটা ফিল্টার, সাজানো এবং শর্ত অনুযায়ী নির্বাচন করতে পারবেন। এটি শুধুমাত্র ডেটা পড়ার জন্য নয়, বরং ডেটাবেজে বিদ্যমান তথ্য বিশ্লেষণ এবং পর্যালোচনা করার জন্যও ব্যবহৃত হয়।
SELECT
কুয়েরি প্রাথমিক থেকে উন্নত ফিচার ব্যবহার করে আরও কার্যকরী হতে পারে এবং ডেটাবেজ পরিচালনার ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে।
H2 Database-এ ডেটা আপডেট করা (Update Operation) একটি অত্যন্ত গুরুত্বপূর্ণ SQL অপারেশন, যা একটি টেবিলের মধ্যে বিদ্যমান রেকর্ডের মান পরিবর্তন করতে ব্যবহৃত হয়। SQL-এ UPDATE
কমান্ড ব্যবহার করে আমরা নির্দিষ্ট শর্ত অনুযায়ী টেবিলের ডেটা আপডেট করতে পারি।
এই অপারেশনটি অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন আমাদের ডেটাবেজে সঞ্চিত তথ্য পরিবর্তন বা সংশোধন করার প্রয়োজন হয়। এটি শুধুমাত্র ডেটা পরিবর্তন করে, কিন্তু টেবিলের গঠন বা অন্যান্য বৈশিষ্ট্য অপরিবর্তিত থাকে।
SQL-এ UPDATE
কমান্ডের সাধারণ স্যন্ট্যাক্স নিচে দেয়া হলো:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
column1
, column2
এর মান নির্ধারণ করা হয়।WHERE
শর্ত না দেয়া হয়, তবে সমস্ত রেকর্ড আপডেট হয়ে যাবে।ধরা যাক, আমাদের একটি students
নামে টেবিল রয়েছে, যেখানে ছাত্রদের নাম, বয়স এবং গ্রেডের তথ্য সংরক্ষিত আছে। টেবিলের কিছু রেকর্ডে গ্রেড আপডেট করার জন্য আমরা UPDATE
কমান্ড ব্যবহার করতে পারি।
students
টেবিলের ধারণা:id | name | age | grade |
---|---|---|---|
1 | Alice | 20 | B |
2 | Bob | 22 | A |
3 | Charlie | 23 | C |
ধরা যাক, আমরা Alice এর গ্রেড পরিবর্তন করতে চাই। আমরা UPDATE
কমান্ড ব্যবহার করে তার গ্রেড পরিবর্তন করতে পারি:
UPDATE students
SET grade = 'A'
WHERE name = 'Alice';
এটি শুধুমাত্র Alice এর রেকর্ডের গ্রেড আপডেট করবে এবং টেবিলটি হবে:
id | name | age | grade |
---|---|---|---|
1 | Alice | 20 | A |
2 | Bob | 22 | A |
3 | Charlie | 23 | C |
আপনি একাধিক কলামও একসাথে আপডেট করতে পারেন। ধরুন, Bob এর বয়স এবং গ্রেড দুটি একসাথে আপডেট করতে চাই:
UPDATE students
SET age = 23, grade = 'A+'
WHERE name = 'Bob';
এখন Bob এর রেকর্ড হবে:
id | name | age | grade |
---|---|---|---|
1 | Alice | 20 | A |
2 | Bob | 23 | A+ |
3 | Charlie | 23 | C |
যদি আপনি সব রেকর্ডের ডেটা পরিবর্তন করতে চান, তবে WHERE
ক্লজ বাদ দিতে পারেন। তবে সতর্ক থাকুন, কারণ এতে সব রেকর্ড আপডেট হবে।
UPDATE students
SET grade = 'B';
এটি সমস্ত ছাত্রের গ্রেড আপডেট করবে:
id | name | age | grade |
---|---|---|---|
1 | Alice | 20 | B |
2 | Bob | 22 | B |
3 | Charlie | 23 | B |
UPDATE
অপারেশনে কিছু গুরুত্বপূর্ণ পয়েন্ট:WHERE
শর্ত ব্যবহার না করলে সমস্ত রেকর্ড আপডেট হয়ে যাবে, যা অপ্রত্যাশিত ফলাফল তৈরি করতে পারে।,
(কমা) ব্যবহার করতে হয়।' '
(কোটেশন চিহ্ন) এর মধ্যে রাখতে হয়।BEGIN TRANSACTION
এবং COMMIT
ব্যবহার করে ট্রানজেকশন শুরু করতে পারেন। এটি আপনাকে আপডেট সম্পন্ন করার আগে পরিবর্তনগুলি যাচাই করার সুযোগ দেয়।H2 Database-এ UPDATE
অপারেশন একটি অত্যন্ত গুরুত্বপূর্ণ ডেটাবেস ম্যানিপুলেশন টুল যা ডেটাবেজে সঞ্চিত রেকর্ডগুলির মান পরিবর্তন করতে ব্যবহৃত হয়। সঠিকভাবে UPDATE
কমান্ড ব্যবহার করলে আপনি আপনার ডেটাবেজের তথ্য সঠিকভাবে আপডেট করতে পারবেন।
H2 ডেটাবেজে ডেটা ডিলিট (Delete) করার জন্য SQL-এর DELETE
কমান্ড ব্যবহৃত হয়। এই কমান্ডটি একটি নির্দিষ্ট শর্তের (condition) ভিত্তিতে টেবিল থেকে রেকর্ড (row) মুছে দেয়। এটি ফিজিক্যাল ডিলিট (physical delete) অর্থাৎ ডেটাবেজ থেকে সম্পূর্ণভাবে রেকর্ড মুছে ফেলে।
DELETE FROM table_name WHERE condition;
ধরা যাক, আপনার একটি students
নামে টেবিল আছে, যেখানে ছাত্রদের তথ্য রয়েছে, এবং আপনি একটি নির্দিষ্ট ছাত্রের রেকর্ড মুছে ফেলতে চান।
DELETE FROM students WHERE student_id = 10;
এটি student_id
কলামে 10
থাকা ছাত্রের রেকর্ডটি মুছে ফেলবে।
যদি আপনি students
টেবিল থেকে সমস্ত রেকর্ড মুছে ফেলতে চান, তবে WHERE
ক্লজ ছাড়া কমান্ড ব্যবহার করতে হবে:
DELETE FROM students;
এটি টেবিলের সমস্ত রেকর্ড মুছে ফেলবে, তবে টেবিলের গঠন বা স্ট্রাকচার অপরিবর্তিত থাকবে।
আপনি যদি কোনো নির্দিষ্ট ইনপুটের ভিত্তিতে ডেটা ডিলিট করতে চান, তবে একটি শর্ত ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি students
টেবিলের কোনো ছাত্রের নাম "John Doe" হয় এবং আপনি তার রেকর্ড মুছে ফেলতে চান:
DELETE FROM students WHERE name = 'John Doe';
DELETE
কমান্ড একটি transactional অপারেশন, যার মানে হল যে এটি rollback করা যেতে পারে যদি কোনও সমস্যা হয়।WHERE
ক্লজ ব্যবহার করে একাধিক রেকর্ড ডিলিট করা সম্ভব।DELETE
কমান্ড চালান এবং শর্ত না দেন, তবে পুরো টেবিলের সমস্ত ডেটা মুছে যাবে। তাই WHERE
ক্লজ ব্যবহার খুবই গুরুত্বপূর্ণ।DELETE
অপারেশন পারফরম্যান্সের জন্য ধীর হতে পারে। বড় টেবিলের জন্য ট্রানজেকশন ব্যবহার করা ভাল।H2 ডেটাবেজে DELETE
কমান্ড ব্যবহার করে আপনি নির্দিষ্ট শর্ত অনুযায়ী ডেটা ডিলিট করতে পারেন। তবে এটি ব্যবহারের সময় সাবধানতা অবলম্বন করা জরুরি, বিশেষ করে যদি শর্ত সঠিকভাবে না দেওয়া হয়। DELETE
কমান্ড ডেটা মুছে ফেললেও টেবিলের গঠন অপরিবর্তিত থাকে এবং এটি ট্রানজেকশনাল অপারেশন, তাই ভুল হলে সহজে রোলব্যাক করা যায়।
common.read_more